package com.siwei.mes.service.system;

import com.github.pagehelper.PageInfo;
import com.siwei.mes.common.query.PageQuery;
import com.siwei.mes.entity.system.User;

import java.security.NoSuchAlgorithmException;
import java.util.List;

/**
 * 用户表(User)表服务接口
 *
 * @author linzi
 * @since 2023-11-25 18:16:11
 */
public interface UserService {

    /**
     * 新增
     *
     * @param entity
     * @return
     */
    Long create(User entity) throws NoSuchAlgorithmException;

    /**
     * 修改
     *
     * @param entity
     */
    void update(User entity);

    /**
     * 密码
     *
     * @param entity
     */
    void updatePassword(User entity) throws NoSuchAlgorithmException;


    /**
     * 删除
     *
     * @param id
     */
    void delete(Long id);

    /**
     * 获取所有分组  分页
     *
     * @param query
     * @return
     */
    PageInfo<User> getPage(PageQuery<User, User> query);

    /**
     * 根据id查询
     *
     * @param id
     * @return
     */
    User loadById(Long id);

    /**
     * 获取所有
     *
     * @param entity
     * @return
     */
    List<User> getAll(User entity);

    /**
     * 修改用户签名图片
     *
     * @param entity
     */
    void updateUserSignImg(User entity);

    /**
     * 判断用户是否有对应的试验类型权限
     *
     * @param experimentTypeList
     * @return true 有权限  false 没有权限
     */
    Boolean getExperimentTypePermission(List<Integer> experimentTypeList);
}
